package my.interview.regular;

/**
 * @DESCRIPTION: 正则表达式的学习
 * @USER: shg
 * @DATE: 2022/12/21 11:48
 *
 * 正则对字符串的常见功能操作：
 * 1. 匹配
 *
 * 2. 切割
 *
 * 3. 替换
 *
 * 4. 获取
 */
public class RegularTest1 {

    public static void main(String[] args) {

        // 要求必须是5~15位的数字，且不能以数字0开头
        // String str = "2435049674";
        // System.out.println(isQQ(str));

        // 匹配手机号
        // String str = "18170628926";
        // System.out.println(isPhoneNumber(str));

        // 分割字符串
        // String str = "1 2  3   4    5";
        // String[] strings = splitString(str);
        // for (String string : strings) {
        //     System.out.println(string);
        // }

        // 分割字符串(组的概念)
        String str1 = "zhangSanttttliSi&&wangwu";
        String[] strings1 = splitString_1(str1);
        for (String s : strings1) {
            System.out.println(s);
        }

    }

    public static String[] splitString_1(String str){
        String regex = "(.)\\1+";   // (.)代表一组  ；  \\1 代表使用第一组的规则   ；  + 代表第二位出现一次或多次
        String[] split = str.split(regex);
        return split;
    }

    // 分割字符串1(按照空格去分割)
    public static String[] splitString(String string){
        // String[] s = string.split("\\s+");
        String[] s = string.split(" +");
        return s;
    }
    // 匹配手机号
    public static boolean isPhoneNumber(String phone){
        String regex = "1[358]\\d{9}";
        return phone.matches(regex);
    }

    // 要求必须是5~15位的数字，且不能以数字0开头
    public static boolean isQQ(String str){
        return str.matches("[1-9]\\d{4,14}");
    }
}
